import greenfoot.*;  // (World, Actor, GreenfootImage, Greenfoot and MouseInfo)

/**
 * Son balas que dispara la clase Caza
 * 
 * @author Luis Guajardo Olvera
 * @author Daniel Romero Martí
 */
public class BalasEnemigo extends Actor
{
    private int aumentaTam;
    private int mueveY;
    private int profundidad;

    /**
     * Constructor de la clase BalasEnemigo
     */
    public BalasEnemigo(int coordY)
    {
        aumentaTam = 0;
        mueveY=coordY;
        profundidad=0;
    }

    /**
     * Act - do whatever the BalaNave wants to do. This method is called whenever
     * the 'Act' or 'Run' button gets pressed in the environment.
     */
    public void act() 
    { 
        if(aumentaTam%4==0)
            this.mueve();
        this.escala();
        aumentaTam++;
        this.desaparece();
    }

    /**
     * escala - Sirve para incrementar el tamaño de la imagen y hace el llamado para desaparecerla
     * del escenario
     */
    public void escala()
    {
        if(aumentaTam==10)
        {  GreenfootImage imagen;
            imagen = getImage();
            imagen.scale(imagen.getWidth()+1,imagen.getHeight()+2);
            profundidad++;
            aumentaTam=0;
        }  

    }

    /**
     * desaparece - Sirve para remover el objeto del escenario
     */
    public void desaparece()
    {
        World mundoTierra;
        mundoTierra = getWorld();
        java.util.List naves = mundoTierra.getObjects(StarFox.class);
        StarFox nave = (StarFox)naves.get(0);
        int starfoxProf;
        starfoxProf=nave.profundidad();
        if(nave !=null && starfoxProf==profundidad && this.intersects(nave)) 
        { 
            nave.disminuyeVida(1);
            mundoTierra.removeObject(this);
        }
        else
        if(profundidad>9)
            mundoTierra.removeObject(this);
    }

    /**
     * mueve - Método que hace el recorrido del objeto en el mundo
     */
    public void mueve()
    {
        setLocation(getX(),getY()+mueveY);
    }   
}
